package variableparam;
/**
 * JDK 5新特性
 *    可变参数:
 *       定义在方法的形参位置上,可以接收任意多个参数
 *       格式:数据类型...变量名
 *    可变参数的本质也是一个数组,如果传递多个参数,会将多个参数自动封装到一个数组中
 *    可变参数必须放在列表的末尾
 */
public class VariableParamDemo01 {
    public static void main(String[] args) {
        int[] arr = {10, 13, 15, 17};
        method01(arr);
        method02(3,5,7,9);
        method04(11,13,15,17,19);
    }

    /**
     * 该方法只能接收数组类型
     * @param arr
     */
    public static void method01(int[] arr){
        for (int ele : arr) {
            System.out.println(ele);
        }
    }

    /**
     * @param arr int类型的可变参数
     * arr的本质就是一个数组
     */
    public static void method02(int...arr){
        //System.out.println(arr);//[I@b4c966a 数组的地址值
        for (int ele : arr) {
            System.out.println(ele);
        }
    }

/*    public static void method03(int...arr,int i){

    }*/

    public static void method04(int i,int...arr){
        System.out.println("i=" + i);
        for (int ele : arr) {
            System.out.println(ele);
        }
    }
}
